The invention pertains to digital data processing and, more particularly, to improved methods and apparatus for monitoring and controlling the operation of multiprocessor computer systems.
The earliest computer systems typically employed a single processor that executed a single programming task from start to finish. Monitoring and controlling the execution of the instructions making up that task was relatively straightforward. For example, if computer repeatedly "crashed" while executing a task, additional programming steps could be added to display and, perhaps, change intermediate program values.
With increases in the complexity of software and hardware, processors are now called upon to interleave the execution of the instructions of multiple tasks. For example, if the instructions of a program (e.g., a word processor or spreadsheet) refer to data that is not currently in main memory, the resulting trap causes the processor to temporarily suspend execution of those instructions so that the processor can execute operating system instructions for loading the missing data into memory. Or, when a hardware device (e.g., a modem) requires service, it generates an interrupt that causes the processor to begin executing instructions necessary to service the interrupt.
Monitoring and controlling processors under these circumstances is difficult. Fortunately, most operating systems are equipped with software packages called "process debuggers" that permit users (and, more typically, programmers) to monitor and control the step-by-step execution of individual programs running on the computers. These debuggers usually afford the user control over execution of the program itself, but not over other related processes that may be running concurrently with it, nor over relevant aspects of the computer's operating system itself.
While process debuggers have proven satisfactory for small computer systems, such as those with only a single processor, they are generally inadequate for monitoring and controlling the operation of large ones, particularly, those with multiple processors. Such large systems, which represent a widely used approach to achieving higher aggregate computing power, are now commercially available with upwards of 1,000 processors.
The complexities of physical construction and hardware architecture of such systems are paralleled in the software that runs on those systems. To facilitate the design and implementation of such software, the art has made several attempts to adapt process debugging tools to the more complex task of "system" debugging. These attempts have met only limited success, however. This is partly due to the lack of access and control of all information from on-going processes. It is also due to the inability of those debuggers to adequately present the vast quantity of information available from the multiprocessor about its "functional units," i.e., its processing elements, hardware interconnect elements, software processes and interprocess communications.
It is therefore an object of this invention to provide improved methods and apparatus for monitoring and controlling the operation of multiprocessor digital data processing systems. More particularly, an object of the invention to provide an improved debugger having enhanced femures for system-level operation with large computer configurations.
A further object is to provide such methods and apparatus for monitoring and controlling the software aspects of such systems, both at the process level and at the interprocess communications level.
Still another aspect of the invention is to provide such methods and apparatus for monitoring the hardware aspects of such systems, both at the level of the processing element and at the level of the hardware interconnect element.
Yet another aspect of the invention is to provide such methods and apparatus that are capable of monitoring and controlling only those hardware and software characteristics of the multiprocessor system as are requested by the user.
These and other objects of the invention are evident in the drawings and in the description which follows.